package com.pethome.web.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.pethome.web.domain.News;
import com.pethome.web.mapper.NewsMapper;
import com.pethome.web.service.INewsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 信息管理Service业务层处理
 * 
 * @author hjc
 * @date 2024-08-26
 */
@Service
@Slf4j
public class NewsServiceImpl extends ServiceImpl<NewsMapper,News> implements INewsService
{
    @Resource
    private NewsMapper newsMapper;

    /**
     * 增加新闻的浏览次数
     * @param newsId 新闻id
     * @return 影响的行数
     */
    @Override
    public Integer plussXinWenPower(Long newsId) {

        News news = this.getById(newsId);
        Long power = news.getNewsPower()+1;
        news.setNewsPower(power);

        return this.updateNews(news);
    }

    /**
     * 获取前10条新闻  按时间排列   最新的在1
     * @return
     */
    @Override
    public List<News> getXinWenList(Integer type) {

        QueryWrapper<News> qw = new QueryWrapper<News>();
        qw.eq("news_type",type);
        qw.orderByDesc("news_create_at");
         List<News> list =  this.list(qw);
//         log.warn("获取新闻新，时间降序 排列");
//         list.forEach(System.out::print);
        return list;
    }

    /**
     * 跟据新闻题目查找
     * @param title
     * @return
     */
    @Override
    public List<News> searchXinWenByTitle(String title) {
        log.warn("根据题目获取新闻，时间降序 排列    title:"+title);
        QueryWrapper<News> qw = new QueryWrapper<News>();
        qw.like("news_title",title);
        qw.eq("news_type",2);
        qw.orderByDesc("news_create_at");
        return this.list(qw);
    }


    /**
     * 查询信息管理
     * 
     * @param newsId 信息管理主键
     * @return 信息管理
     */
    @Override
    public News selectNewsByNewsId(Long newsId)
    {
        return newsMapper.selectNewsByNewsId(newsId);
    }

    /**
     * 查询信息管理列表
     * 
     * @param news 信息管理
     * @return 信息管理
     */
    @Override
    public List<News> selectNewsList(News news)
    {
        return newsMapper.selectNewsList(news);
    }

    /**
     * 新增信息管理
     * 
     * @param news 信息管理
     * @return 结果
     */
    @Override
    public int insertNews(News news)
    {
        return newsMapper.insertNews(news);
    }

    /**
     * 修改信息管理
     * 
     * @param news 信息管理
     * @return 结果
     */
    @Override
    public int updateNews(News news)
    {
        return newsMapper.updateNews(news);
    }

    /**
     * 批量删除信息管理
     * 
     * @param newsIds 需要删除的信息管理主键
     * @return 结果
     */
    @Override
    public int deleteNewsByNewsIds(Long[] newsIds)
    {
        return newsMapper.deleteNewsByNewsIds(newsIds);
    }

    /**
     * 删除信息管理信息
     * 
     * @param newsId 信息管理主键
     * @return 结果
     */
    @Override
    public int deleteNewsByNewsId(Long newsId)
    {
        return newsMapper.deleteNewsByNewsId(newsId);
    }
}
